//*****************************************************************************
//  ProductCodes.java  Java Foundations
//
//  Demonstrates the use of a try-catch block.
//*****************************************************************************

import java.util.Scanner;

public class ProductCodes
{
  //--------------------------------------------------------------
  //  Counts the number of product codes that are entered with a 
  //  zone of R and district greater than 2000.
  //--------------------------------------------------------------
  public static void main (String[] args)
  {
    String code;
    char zone;
    int district, valid = 0, banned = 0;

    Scanner scan = new Scanner (System.in);

    System.out.print ("Enter product code (STOP to quit): ");
    code = scan.nextLine();

    while (!code.equals ("STOP"))
    {
       try
       {
         zone = code.charAt(9);
         district = Integer.parseInt(code.substring(3, 7));
         valid++;
         if (zone == 'R' && district > 2000)
             banned++;
       }
       catch (StringIndexOutOfBoundsException exception)
       {
          System.out.println ("Improper code leagth: " + code);
       }
       catch (NumberFormatException excception)
       {
          System.out.println ("District is not numeric: " + code);
       }
	System.out.print ("Enter product code (STOP to quit): ");
        code = scan.nextLine();
   }
   System.out.println ("# of calid codes entered: " + valid);
   System.out.println ("# of banned codes entered: " + banned);
  }
}      
